package gaileenchess;

public class Command
{
    public enum Cmd {NEW, QUIT, FORFEIT, MOVE, DISPLAY, HELP, SETUP, VALID, HINT, INVALID};
    
    
    public final Cmd type; // enum for command
    public final Board.Position[] args; // arguments for a command

    
    public Command(Cmd cmd, Board.Position[] pos)
    {
        this.type = cmd;
        this.args = pos;
    }
    
    public static void displayHelp()
    {
        System.out.println("Valid Commands:\n" +
            "\"N[ew]\" = new game\n" +
            "\"Q[uit]\" or \"E[xit]\" = exits program\n" +
            "\"F[orfeit]\" = forfeits game, other player wins\n" +
            "\"M[ove] (A-H)(1-8) (A-H)(1-8)\" = move\n" +
            "\"D[isplay]\" = prints current board\n" +
            "\"H[elp]\" or \"?\" = displays help doc\n" +
            "\"S[etup]\" = lets you set up a custom board configuration\n" + //TODO: explain this more?
            "\n" +
            "\"V[alid] (A-H)(1-8)\" = prints valid moves of piece\n" +
            "\"Hint\" = shows best move");
    }
}
